package top.ddandang.blog.service;

import top.ddandang.blog.model.pojo.Tags;
import com.baomidou.mybatisplus.extension.service.IService;
import top.ddandang.blog.model.query.PageBean;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author D
 * @since 2020-06-23
 */
public interface TagsService extends IService<Tags> {

    /**
     * 增加标签
     * @param name 标签名
     * @param description 标签描述
     */
    void insertTags(String name, String description);

    /**
     * 分页获取标签
     * @param pageBean 分页实体类
     * @return 标签列表
     */
    List<Tags> listTags(PageBean pageBean);

    /**
     * 获取全部的标签
     * @return 标签列表
     */
    List<Tags> allTags();

    /**
     * 更新标签
     * @param id 标签Id
     * @param name 标签名
     * @param description 标签描述
     * @return 更新状态
     */
    int updateTags(Integer id,String name, String description);


    /**
     * 更新标签中的文章数量
     * @param tagsId 标签Id Array
     * @param add 是否是增加
     */
    void updateArticleAmount(Integer[] tagsId, Boolean add);

    /**
     * 更新标签中的文章数量
     * @param tagsId 标签Id Array
     * @param add 是否是增加
     */
    void updateArticleAmount(Integer tagsId, Boolean add);

    /**
     * 增加标签中文章的数量
     * @param map 存放以标签id 为key 文章的数量为value的Map<Integer, Integer>
     */
    void addArticleAmount(Map<Integer, Integer> map);
}
